package com.rfid;


/**
 * 该类定义了调用RFID作读写响应的一些操作	<br>
 * 子类比须保证以下几点:<br>
 * 1. 返回有效数据或响应<br>
 * 2. 无法完成方法调用时抛出有明确异常信息的 @see com.rfid.jni.RFIDCallException类型或子类型
 * @author zzm 
 *
 */
public interface RFIDCaller {

	/**
	 * 让读卡器发声的函数
	 * @throws RFIDCallException
	 */
	void ring() throws RFIDCallException;
	
	/**
	 * 读取一段数据，无法完成将抛出异常
	 * @param areaCount 区块个数
	 * @param areaStarts 起始区块
	 * @return 读取的数据
	 * @throws RFIDCallException 
	 */
	String read(int areaCount, int areaStarts) throws RFIDCallException;
	
	/**
	 * 写入一段数据，子类实现时必须对写入的数据以及区块所能容下的数据量作验证，如不能完整写入将抛出异常
	 * @param areaCount 区块个数
	 * @param areaStarts 起始区块
	 * @param data 将要写入的数据
	 * @throws RFIDCallException
	 */
	void write(int areaCount, int areaStarts, String data) throws RFIDCallException;
	
}
